home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 2 / Tech Arsenal 2 (Arsenal Computer).iso / clipper / s93bsp.exe / CL5 / INVSCRN.PRG < prev    next >
Encoding:
Text File  |  1993-11-26  |  23.0 KB  |  661 lines

  1. ///////////////////////////////////////////////////////////////
  2. //
  3. //  Module : INVSCRN.PRG
  4. //
  5. //  Created by SUMMER'93 (c) on Fri Nov 26 14:50:57 1993
  6. //
  7. ///////////////////////////////////////////////////////////////
  8. #include "snj.ch"
  9. // The following vars were made static because they were 'inherited'
  10. // SUMPART 
  11. // The following statics were declared 'PUBLIC' in the S87 code
  12. // OR were private and inherited by called functions
  13. // If they are used outside this module there will be a set/get
  14. // function with the same name as the var in this module
  15. static SUMPART
  16. procedure INVSAY( GETEM ) // Amended by SUMMER93
  17. // Calls: INVGET 
  18. // Called By: INVMAIN INVEDIT 
  19. //       I N V  S A Y
  20. @ 2, 0 clear to 24, 79 
  21. //       TEXT outlines
  22. set color to( COLNORM() )
  23.  
  24. @ 02, 61 say "Invoice no:" 
  25. @ 03, 00 say ;
  26. "┌─ Owner ──────────────────────────────┐ ┌─ Invoice Totals ────────────────────┐" 
  27. @ 04, 00 say "│" + space( 38 ) + "│ │                    Ins Co.  Owner   │" 
  28. @ 05, 00 say "│ Name:" + space( 32 ) + ;
  29. "│ ├─────────────────────────────────────┤" 
  30. @ 06, 00 say "│ Addr:" + space( 32 ) + ;
  31. "│ │     Total Labour                    │" 
  32. @ 07, 00 say "│" + space( 38 ) + "│ │      Total Parts                    │" 
  33. @ 08, 00 say "│" + space( 38 ) + "│ │ Specialist Mat's                    │" 
  34. @ 09, 00 say ;
  35. "│ Home:              Work:             │ ├─────────────────────────────────────┤" 
  36. @ 10, 00 say "│" + space( 38 ) + "│ │   Total excl VAT                    │" 
  37. @ 11, 00 say ;
  38. "│ Owner VAT registered?   (Y/N)        │ │ Parts discnt   %                    │" 
  39. @ 12, 00 say ;
  40. "│ Insurance Co. to pay?   (Y/N)        │ │        Sub-total                    │" 
  41. @ 13, 00 say ;
  42. "└──────────────────────────────────────┘ │    VAT at   %                    │" 
  43. @ 14, 00 say ;
  44. "┌─ Parts ──────────────────────────────┐ ├─────────────────────────────────────┤" 
  45. @ 15, 00 say "│" + space( 38 ) + "│ │        Sub-total                    │" 
  46. @ 16, 00 say "│" + space( 38 ) + "│ │" + space( 37 ) + "│" 
  47. @ 17, 00 say "│" + space( 38 ) + "│ │ Owner XS" + space( 28 ) + "│" 
  48. @ 18, 00 say "│" + space( 38 ) + "│ │ Contrib" + space( 29 ) + "│" 
  49. @ 19, 00 say "│" + space( 38 ) + "│ │" + space( 37 ) + "│" 
  50. @ 20, 00 say "│" + space( 38 ) + "│ │ Due from Ins. Co                    │" 
  51. @ 21, 00 say "│" + space( 38 ) + "│ │   Due from Owner                    │" 
  52. @ 22, 00 say "│" + space( 38 ) + "│ ╞═════════════════════════════════════╡" 
  53. @ 23, 00 say "│" + space( 38 ) + "│ │" + space( 37 ) + "│" 
  54. @ 24, 00 say ;
  55. "└──────────────────────────────────────┘ └─────────────────────────────────────┘" 
  56. set color to( COLHEAD() )
  57. @ 23, 46 say "Invoice Total" 
  58.  
  59. do INVGET with GETEM 
  60.  
  61. return 
  62.  
  63. //*****************************************************************
  64.  
  65. procedure INVGET( GETEM ) // Amended by SUMMER93
  66. // Calls: SINVNO QBREAD QBYESNO 
  67. // Called By: INVMAIN INVEDIT INVFIND INVSAY 
  68. local GETLIST
  69. // These locals cover set/get variables where lvalues are needed
  70. local MOWNINIT, MOWNNAME, MOWNADD1, MOWNADD2, MOWNADD3, MOWNTELH, MOWNTELB;
  71. , MOWNVAT, MINSTOPAY, MPARTDISC, MVATRATE
  72. GETLIST := {}
  73. set color to( COLNORM() )
  74.  
  75. SINVNO( )
  76. do while .t. 
  77.     // GET command amended to ...
  78.     MOWNINIT := MOWNINIT()
  79.     @ 05, 08  get MOWNINIT  WHEN { || MOWNINIT := MOWNINIT(), .t. } ;
  80.      valid { ||  MOWNINIT( MOWNINIT ) != NIL }
  81.     // GET command amended to ...
  82.     MOWNNAME := MOWNNAME()
  83.     @ 05, 15  get MOWNNAME  WHEN { || MOWNNAME := MOWNNAME(), .t. } ;
  84.      valid { ||  MOWNNAME( MOWNNAME ) != NIL }
  85.     // GET command amended to ...
  86.     MOWNADD1 := MOWNADD1()
  87.     @ 06, 08  get MOWNADD1  WHEN { || MOWNADD1 := MOWNADD1(), .t. } ;
  88.      valid { ||  MOWNADD1( MOWNADD1 ) != NIL }
  89.     // GET command amended to ...
  90.     MOWNADD2 := MOWNADD2()
  91.     @ 07, 08  get MOWNADD2  WHEN { || MOWNADD2 := MOWNADD2(), .t. } ;
  92.      valid { ||  MOWNADD2( MOWNADD2 ) != NIL }
  93.     // GET command amended to ...
  94.     MOWNADD3 := MOWNADD3()
  95.     @ 08, 08  get MOWNADD3  WHEN { || MOWNADD3 := MOWNADD3(), .t. } ;
  96.      valid { ||  MOWNADD3( MOWNADD3 ) != NIL }
  97.     // GET command amended to ...
  98.     MOWNTELH := MOWNTELH()
  99.     @ 09, 08  get MOWNTELH  WHEN { || MOWNTELH := MOWNTELH(), .t. } ;
  100.      valid { ||  MOWNTELH( MOWNTELH ) != NIL }
  101.     // GET command amended to ...
  102.     MOWNTELB := MOWNTELB()
  103.     @ 09, 27  get MOWNTELB  WHEN { || MOWNTELB := MOWNTELB(), .t. } ;
  104.      valid { ||  MOWNTELB( MOWNTELB ) != NIL }
  105.     if GETEM 
  106.         // GET command amended to ...
  107.         MOWNVAT := MOWNVAT()
  108.         @ 11, 24  get MOWNVAT picture "Y" ;
  109.          WHEN { || MOWNVAT := MOWNVAT(), .t. }  valid { || ;
  110.          MOWNVAT( MOWNVAT ) != NIL }
  111.         // GET command amended to ...
  112.         MINSTOPAY := MINSTOPAY()
  113.         @ 12, 24  get MINSTOPAY picture "Y" ;
  114.          WHEN { || MINSTOPAY := MINSTOPAY(), .t. }  valid { || ;
  115.          MINSTOPAY( MINSTOPAY ) != NIL }
  116.     else 
  117.         set color to( COLBRIGHT() )
  118.         @ 11, 24 say MOWNVAT() picture "Y" 
  119.         @ 12, 24 say MINSTOPAY() picture "Y" 
  120.         set color to( COLNORM() )
  121.     endif 
  122.     // GET command amended to ...
  123.     MPARTDISC := MPARTDISC()
  124.     @ 11, 56  get MPARTDISC picture "99" ;
  125.      WHEN { || MPARTDISC := MPARTDISC(), .t. }  valid { || ;
  126.      MPARTDISC( MPARTDISC ) != NIL }
  127.     // GET command amended to ...
  128.     MVATRATE := MVATRATE()
  129.     @ 13, 53  get MVATRATE picture "99.99" ;
  130.      WHEN { || MVATRATE := MVATRATE(), .t. }  valid { || ;
  131.      MVATRATE( MVATRATE ) != NIL }
  132.  
  133.     if GETEM 
  134.         do QBREAD with "Fill in Owner details" , , GETLIST
  135.         // Call amended
  136.         if GETOUT()  // Can't use OR
  137.             exit 
  138.         elseif QBYESNO( "Owner details OK?" ) = "Y" 
  139.             exit 
  140.         endif 
  141.     else 
  142.         clear gets 
  143.         exit 
  144.     endif 
  145. enddo 
  146. set color to( COLNORM() )
  147. if "AVIS" $ upper( MOWNNAME() ).and. empty( MCUSTTYP() )
  148.     MCUSTTYP( "AVIS"  )
  149. endif 
  150. return 
  151.  
  152. //*****************************************************************
  153.  
  154. procedure INVTOT
  155. // Calls: INVTOTAL PRPOS 
  156. // Called By: INVMAIN INVEDIT INVFIND 
  157.  
  158.  
  159. do INVTOTAL with .t. 
  160. //   Various other Total fields
  161.  
  162. set color to( COLBRIGHT() )
  163.  
  164. @ 06, 62 say PRPOS( MINSLAB() , "9999.99" )
  165. @ 07, 62 say PRPOS( MINSPART() , "9999.99" )
  166. @ 08, 62 say PRPOS( MINSSPEC() , "9999.99" )
  167. @ 10, 62 say PRPOS( MINSAMT() , "9999.99" )
  168. @ 11, 62 say PRPOS( IPDSCNT() , "9999.99" )
  169. @ 12, 62 say PRPOS( ISUBTOT() , "9999.99" )
  170. @ 13, 62 say PRPOS( IVATAMT() , "9999.99" )
  171. @ 15, 62 say PRPOS( INSSUB() , "9999.99" )
  172. @ 17, 71 say PRPOS( MEXCESS() , "9999.99" )
  173. @ 17, 53 say PRPOS( MEXCESS() , "9999.99" )
  174. @ 18, 71 say PRPOS( MCONTRIB() , "9999.99" )
  175. @ 18, 53 say PRPOS( MCONTRIB() , "9999.99" )
  176. @ 20, 62 say PRPOS( MINSDUE() , "9999.99" )
  177.  
  178. @ 06, 71 say PRPOS( MOWNLAB() , "9999.99" )
  179. @ 07, 71 say PRPOS( MOWNPART() , "9999.99" )
  180. @ 08, 71 say PRPOS( MOWNSPEC() , "9999.99" )
  181. @ 10, 71 say PRPOS( MOWNAMT() , "9999.99" )
  182. @ 11, 71 say PRPOS( OPDSCNT() , "9999.99" )
  183. @ 12, 71 say PRPOS( OSUBTOT() , "9999.99" )
  184. @ 13, 71 say PRPOS( OVATAMT() , "9999.99" )
  185. @ 15, 71 say PRPOS( OWNSUB() , "9999.99" )
  186. @ 21, 71 say PRPOS( MOWNDUE() , "9999.99" )
  187.  
  188. MINVTOTAL( MOWNDUE()  + MINSDUE()  )
  189. @ 23, 71 say PRPOS( MINVTOTAL() , "9999.99" )
  190.  
  191. set color to( COLNORM() )
  192. return 
  193.  
  194. //*****************************************************************
  195.  
  196. procedure INVVEH( GETEM ) // Amended by SUMMER93
  197. // Calls: V2DATES QBREAD QBYESNO QBMESS 
  198. // Called By: INVEDIT 
  199. //       I N V V E H
  200. //       get or say vehicle particulars
  201. local OLDSCR, STAT, GETLIST
  202. // These locals cover set/get variables where lvalues are needed
  203. local MDATEIN, MDATEOUT, MDATEINV, MMAKEMODEL, MSPEEDO, MFUEL, MREGNO, MYEAR;
  204. , MPAINT, MTRIM, MENGNO, MCHASNO
  205. GETLIST := {}
  206.  
  207.  
  208. STAT := "N" 
  209. set color to( COLNORM() )
  210. OLDSCR := savescreen( 0, 0, 24, 40 )
  211. @ 0, 0 clear to 24, 40 
  212. @ 07, 01, 23, 39 box "┌─┐│┘─└│ " 
  213. @ 07, 03 say " Vehicle " 
  214. @ 11, 01 say "├" 
  215. @ 11, 39 say "┤" 
  216. @ 13, 01 say "├" 
  217. @ 13, 39 say "┤" 
  218. @ 15, 01 say "├" 
  219. @ 15, 39 say "┤" 
  220. @ 17, 01 say "├" 
  221. @ 17, 39 say "┤" 
  222. @ 19, 01 say "├" 
  223. @ 19, 39 say "┤" 
  224. @ 21, 01 say "├" 
  225. @ 21, 39 say "┤" 
  226. @ 09, 03 say "Date   In         Out       Invoice" 
  227. @ 11, 02 say "─────────────────────────────────────" 
  228. @ 12, 03 say "Make:" 
  229. @ 13, 02 say "─────────────────────────────────────" 
  230. @ 14, 03 say "Speedo:           Fuel:   (0-4 Qtrs)" 
  231. @ 15, 02 say "─────────────────────────────────────" 
  232. @ 16, 03 say "Reg no:           Year:" 
  233. @ 17, 02 say "─────────────────────────────────────" 
  234. @ 18, 03 say "Paint:            Trim:" 
  235. @ 19, 02 say "─────────────────────────────────────" 
  236. @ 20, 04 say "Engine:" 
  237. @ 21, 02 say "─────────────────────────────────────" 
  238. @ 22, 03 say "Chassis:" 
  239.  
  240. do while STAT  = "N" 
  241.     MDATEIN( iif( empty(MDATEIN() ), date(), MDATEIN() ) )
  242.     // GET command amended to ...
  243.     MDATEIN := MDATEIN()
  244.     @ 10, 8  get MDATEIN picture "@K"  WHEN { || MDATEIN := MDATEIN(), .t. } ;
  245.      valid { || MDATEIN( MDATEIN ) != NIL .and. V2DATES(MDATEOUT() , 1 ) }
  246.     MDATEOUT( iif( MEDITING() .and. empty(MDATEOUT() ), date(), MDATEOUT() ) )
  247.     // GET command amended to ...
  248.     MDATEOUT := MDATEOUT()
  249.     @ 10, 19  get MDATEOUT picture "@K" ;
  250.      WHEN { || MDATEOUT := MDATEOUT(), .t. } ;
  251.      valid { || MDATEOUT( MDATEOUT ) != NIL .and. V2DATES(MDATEIN() , 2 ) }
  252.     MDATEINV( iif( MEDITING() .and. empty(MDATEINV() ), date(), MDATEINV() ) )
  253.     // GET command amended to ...
  254.     MDATEINV := MDATEINV()
  255.     @ 10, 31  get MDATEINV picture "@K" ;
  256.      WHEN { || MDATEINV := MDATEINV(), .t. } ;
  257.      valid { || MDATEINV( MDATEINV ) != NIL .and. V2DATES(MDATEOUT() , 2 ) }
  258.     // GET command amended to ...
  259.     MMAKEMODEL := MMAKEMODEL()
  260.     @ 12, 9  get MMAKEMODEL  WHEN { || MMAKEMODEL := MMAKEMODEL(), .t. } ;
  261.      valid { ||  MMAKEMODEL( MMAKEMODEL ) != NIL }
  262.     // GET command amended to ...
  263.     MSPEEDO := MSPEEDO()
  264.     @ 14, 11  get MSPEEDO picture "999999" ;
  265.      WHEN { || MSPEEDO := MSPEEDO(), .t. }  valid { || ;
  266.      MSPEEDO( MSPEEDO ) != NIL }
  267.     // GET command amended to ...
  268.     MFUEL := MFUEL()
  269.     @ 14, 27  get MFUEL picture "9"  WHEN { || MFUEL := MFUEL(), .t. } ;
  270.      valid { || MFUEL( MFUEL ) != NIL .and. CheckRange( MFUEL, 0, 4  ) }
  271.     // GET command amended to ...
  272.     MREGNO := MREGNO()
  273.     @ 16, 11  get MREGNO picture "!!!!!!!!" ;
  274.      WHEN { || MREGNO := MREGNO(), .t. }  valid { || ;
  275.      MREGNO( MREGNO ) != NIL }
  276.     // GET command amended to ...
  277.     MYEAR := MYEAR()
  278.     @ 16, 27  get MYEAR  WHEN { || MYEAR := MYEAR(), .t. }  valid { || ;
  279.      MYEAR( MYEAR ) != NIL }
  280.     // GET command amended to ...
  281.     MPAINT := MPAINT()
  282.     @ 18, 10  get MPAINT picture "@S10"  WHEN { || MPAINT := MPAINT(), .t. } ;
  283.      valid { ||  MPAINT( MPAINT ) != NIL }
  284.     // GET command amended to ...
  285.     MTRIM := MTRIM()
  286.     @ 18, 27  get MTRIM picture "@S10"  WHEN { || MTRIM := MTRIM(), .t. } ;
  287.      valid { ||  MTRIM( MTRIM ) != NIL }
  288.     // GET command amended to ...
  289.     MENGNO := MENGNO()
  290.     @ 20, 12  get MENGNO picture "@S24"  WHEN { || MENGNO := MENGNO(), .t. } ;
  291.      valid { ||  MENGNO( MENGNO ) != NIL }
  292.     // GET command amended to ...
  293.     MCHASNO := MCHASNO()
  294.     @ 22, 12  get MCHASNO picture "@S24" ;
  295.      WHEN { || MCHASNO := MCHASNO(), .t. }  valid { || ;
  296.      MCHASNO( MCHASNO ) != NIL }
  297.  
  298.     if GETEM 
  299.         do QBREAD with "Fill in Vehicle details" , , GETLIST
  300.         // Call amended
  301.         if GETOUT() 
  302.             exit 
  303.         endif 
  304.         STAT := QBYESNO( "Vehicle details OK?" )
  305.     else 
  306.         clear gets 
  307.         STAT := " " 
  308.         do QBMESS
  309.     endif 
  310. enddo 
  311. set color to( COLNORM() )
  312. restscreen( 0, 0, 24, 40, OLDSCR )
  313. return 
  314.  
  315. //*****************************************************************
  316.  
  317. procedure INVPAY( GETEM ) // Amended by SUMMER93
  318. // Calls: VCUSTTYP QBREAD QBYESNO QBMESS 
  319. // Called By: INVEDIT 
  320.  
  321. //       I N V P A Y
  322. //       Payment details
  323. local OLDSCR, STAT, GETLIST
  324. // These locals cover set/get variables where lvalues are needed
  325. local MACTYPE, MWORKTYPE, MCUSTTYP, MEXCESS, MCONTRIB
  326. GETLIST := {}
  327.  
  328. set color to( COLNORM() )
  329.  
  330. STAT := "N" 
  331. OLDSCR := savescreen( 7, 0, 23, 39 )
  332.  
  333. @ 14, 00, 24, 39 box "┌─┐│┘─└│ " 
  334. @ 14, 02 say " Payment Details " 
  335. @ 16, 08 say "Cash or Account   (C/A)" 
  336. @ 18, 07 say "Retail, Int, Wty   (R/I/W)" 
  337. @ 20, 03 say "Customer group       for Reports" 
  338.  
  339. do while STAT  = "N" 
  340.     // GET command amended to ...
  341.     MACTYPE := MACTYPE()
  342.     @ 16, 24  get MACTYPE picture "!"  WHEN { || MACTYPE := MACTYPE(), .t. } ;
  343.      valid { || MACTYPE( MACTYPE ) != NIL .and. MACTYPE() $ "CA"  }
  344.     // GET command amended to ...
  345.     MWORKTYPE := MWORKTYPE()
  346.     @ 18, 24  get MWORKTYPE picture "!" ;
  347.      WHEN { || MWORKTYPE := MWORKTYPE(), .t. } ;
  348.      valid { || MWORKTYPE( MWORKTYPE ) != NIL .and. MWORKTYPE() $ "RIW"  }
  349.     // GET command amended to ...
  350.     MCUSTTYP := MCUSTTYP()
  351.     @ 20, 18  get MCUSTTYP picture "!!!!" ;
  352.      WHEN { || MCUSTTYP := MCUSTTYP(), .t. } ;
  353.      valid { || MCUSTTYP( MCUSTTYP ) != NIL .and. VCUSTTYP(20, 18, .f. ) }
  354.     if MINSTOPAY() 
  355.         // GET command amended to ...
  356.         MEXCESS := MEXCESS()
  357.         @ 17, 53  get MEXCESS picture "9999.99" ;
  358.          WHEN { || MEXCESS := MEXCESS(), .t. }  valid { || ;
  359.          MEXCESS( MEXCESS ) != NIL }
  360.         // GET command amended to ...
  361.         MCONTRIB := MCONTRIB()
  362.         @ 18, 53  get MCONTRIB picture "9999.99" ;
  363.          WHEN { || MCONTRIB := MCONTRIB(), .t. }  valid { || ;
  364.          MCONTRIB( MCONTRIB ) != NIL }
  365.     endif 
  366.  
  367.     if GETEM 
  368.         do QBREAD with "Fill in Payment details" , , GETLIST
  369.         // Call amended
  370.         STAT := QBYESNO( "Payment details OK?" )
  371.         if GETOUT() 
  372.             exit 
  373.         endif 
  374.     else 
  375.         clear gets 
  376.         STAT := " " 
  377.         do QBMESS
  378.     endif 
  379. enddo 
  380. set color to( COLNORM() )
  381. restscreen( 7, 0, 23, 39, OLDSCR )
  382. return 
  383.  
  384. //*****************************************************************
  385.  
  386. procedure INVINSLB( GETEM ) // Amended by SUMMER93
  387. // Calls: COPYEST QBREAD QBYESNO QBMESS 
  388. // Called By: INVEDIT 
  389. local OLDSCR, STAT, GETLIST
  390. // These locals cover set/get variables where lvalues are needed
  391. local MINSCO, MINSADD1, MINSADD2, MINSENG, MINSTEL, MESTNO, MCLAIMNO;
  392. , MLABESTNO, MLABOUR1, ML2TEXT, MLABOUR2, ML3TEXT, MLABOUR3, ML4TEXT, MLABOUR4
  393. GETLIST := {}
  394.  
  395.  
  396. OLDSCR := savescreen( 0, 40, 24, 79 )
  397. @ 3, 40 clear to 24, 79 
  398. STAT := "N" 
  399. set color to( COLNORM() )
  400.  
  401. @ 02, 61 say "Invoice no:" 
  402. @ 03, 41 say "┌─ Insurance Company ─────────────────┐" 
  403. @ 04, 41 say "│" + space( 37 ) + "│" 
  404. @ 05, 41 say "│Name:" + space( 32 ) + "│" 
  405. @ 06, 41 say "│Addr:" + space( 32 ) + "│" 
  406. @ 07, 41 say "│" + space( 37 ) + "│" 
  407. @ 08, 41 say "├─────────────────────────────────────┤" 
  408. @ 09, 41 say "│ Eng:" + space( 32 ) + "│" 
  409. @ 10, 41 say "│ Tel:" + space( 32 ) + "│" 
  410. @ 11, 41 say "├─────────────────────────────────────┤" 
  411. @ 12, 41 say "│ Estimate:" + space( 27 ) + "│" 
  412. @ 13, 41 say "│    Claim:" + space( 27 ) + "│" 
  413. @ 14, 41 say "│" + space( 37 ) + "│" 
  414. @ 15, 41 say "╞══ Labour ═══════════════════════════╡" 
  415. @ 16, 41 say "│" + space( 37 ) + "│" 
  416. @ 17, 41 say "│ Estimate no:                        │" 
  417. @ 18, 41 say "├─────────────────────────────────────┤" 
  418. @ 19, 41 say "│2:" + space( 35 ) + "│" 
  419. @ 20, 41 say "│3:" + space( 35 ) + "│" 
  420. @ 21, 41 say "│4:" + space( 35 ) + "│" 
  421. @ 22, 41 say "├─────────────────────────────────────┤" 
  422. @ 23, 41 say "│        Total Labour charge          │" 
  423. @ 24, 41 say "└─────────────────────────────────────┘" 
  424.  
  425.  
  426. do while STAT  = "N" 
  427.     if MINSTOPAY() 
  428.         // GET command amended to ...
  429.         MINSCO := MINSCO()
  430.         @ 05, 48  get MINSCO  WHEN { || MINSCO := MINSCO(), .t. }  valid { || ;
  431.          MINSCO( MINSCO ) != NIL }
  432.         // GET command amended to ...
  433.         MINSADD1 := MINSADD1()
  434.         @ 06, 48  get MINSADD1  WHEN { || MINSADD1 := MINSADD1(), .t. } ;
  435.          valid { ||  MINSADD1( MINSADD1 ) != NIL }
  436.         // GET command amended to ...
  437.         MINSADD2 := MINSADD2()
  438.         @ 07, 48  get MINSADD2  WHEN { || MINSADD2 := MINSADD2(), .t. } ;
  439.          valid { ||  MINSADD2( MINSADD2 ) != NIL }
  440.         // GET command amended to ...
  441.         MINSENG := MINSENG()
  442.         @ 09, 48  get MINSENG  WHEN { || MINSENG := MINSENG(), .t. } ;
  443.          valid { ||  MINSENG( MINSENG ) != NIL }
  444.         // GET command amended to ...
  445.         MINSTEL := MINSTEL()
  446.         @ 10, 48  get MINSTEL  WHEN { || MINSTEL := MINSTEL(), .t. } ;
  447.          valid { ||  MINSTEL( MINSTEL ) != NIL }
  448.     endif 
  449.     // GET command amended to ...
  450.     MESTNO := MESTNO()
  451.     @ 12, 53  get MESTNO  WHEN { || MESTNO := MESTNO(), .t. } ;
  452.      valid { || MESTNO( MESTNO ) != NIL .and. COPYEST() }
  453.     // GET command amended to ...
  454.     MCLAIMNO := MCLAIMNO()
  455.     @ 13, 53  get MCLAIMNO  WHEN { || MCLAIMNO := MCLAIMNO(), .t. } ;
  456.      valid { ||  MCLAIMNO( MCLAIMNO ) != NIL }
  457.  
  458.     // GET command amended to ...
  459.     MLABESTNO := MLABESTNO()
  460.     @ 17, 56  get MLABESTNO  WHEN { || MLABESTNO := MLABESTNO(), .t. } ;
  461.      valid { ||  MLABESTNO( MLABESTNO ) != NIL }
  462.     // GET command amended to ...
  463.     MLABOUR1 := MLABOUR1()
  464.     @ 17, 71  get MLABOUR1 picture "9999.99" ;
  465.      WHEN { || MLABOUR1 := MLABOUR1(), .t. }  valid { || ;
  466.      MLABOUR1( MLABOUR1 ) != NIL }
  467.     // GET command amended to ...
  468.     ML2TEXT := ML2TEXT()
  469.     @ 19, 44  get ML2TEXT picture "@S24" ;
  470.      WHEN { || ML2TEXT := ML2TEXT(), .t. }  valid { || ;
  471.      ML2TEXT( ML2TEXT ) != NIL }
  472.     // GET command amended to ...
  473.     MLABOUR2 := MLABOUR2()
  474.     @ 19, 71  get MLABOUR2 picture "9999.99" ;
  475.      WHEN { || MLABOUR2 := MLABOUR2(), .t. }  valid { || ;
  476.      MLABOUR2( MLABOUR2 ) != NIL }
  477.     // GET command amended to ...
  478.     ML3TEXT := ML3TEXT()
  479.     @ 20, 44  get ML3TEXT picture "@S24" ;
  480.      WHEN { || ML3TEXT := ML3TEXT(), .t. }  valid { || ;
  481.      ML3TEXT( ML3TEXT ) != NIL }
  482.     // GET command amended to ...
  483.     MLABOUR3 := MLABOUR3()
  484.     @ 20, 71  get MLABOUR3 picture "9999.99" ;
  485.      WHEN { || MLABOUR3 := MLABOUR3(), .t. }  valid { || ;
  486.      MLABOUR3( MLABOUR3 ) != NIL }
  487.     // GET command amended to ...
  488.     ML4TEXT := ML4TEXT()
  489.     @ 21, 44  get ML4TEXT picture "@S24" ;
  490.      WHEN { || ML4TEXT := ML4TEXT(), .t. }  valid { || ;
  491.      ML4TEXT( ML4TEXT ) != NIL }
  492.     // GET command amended to ...
  493.     MLABOUR4 := MLABOUR4()
  494.     @ 21, 71  get MLABOUR4 picture "9999.99" ;
  495.      WHEN { || MLABOUR4 := MLABOUR4(), .t. }  valid { || ;
  496.      MLABOUR4( MLABOUR4 ) != NIL }
  497.  
  498.     if GETEM 
  499.         do QBREAD with iif(MINSTOPAY() , ;
  500.         "Fill in Insurance Co and Labour details", "Fill in Labour details" );
  501.         , , @GETLIST
  502.         // Call amended
  503.         MLABOURT( MLABOUR1()  + MLABOUR2()  + MLABOUR3()  + MLABOUR4()  )
  504.         set color to( COLHEAD() )
  505.         @ 23, 71 say MLABOURT() picture "9999.99" 
  506.         STAT := QBYESNO( "Insurance/Labour details OK?" )
  507.         if GETOUT() 
  508.             exit 
  509.         endif 
  510.     else 
  511.         clear gets 
  512.         STAT := " " 
  513.         set color to( COLHEAD() )
  514.         @ 23, 71 say MLABOURT() picture "9999.99" 
  515.         STAT := QBYESNO( "Insurance/Labour details OK?" )
  516.         set color to( COLNORM() )
  517.         do QBMESS
  518.     endif 
  519. enddo 
  520.  
  521. restscreen( 0, 40, 24, 79, OLDSCR )
  522. set color to( COLNORM() )
  523. return 
  524.  
  525. //*****************************************************************
  526.  
  527. function SINVNO
  528. // Calls: 
  529. // Called By: INVEDIT INVFIND INVGET GINVNO 
  530.  
  531. set color to( COLBRIGHT() )
  532. @ 02, 73 say MINVNO() picture "99999" 
  533. set color to( COLNORM() )
  534.  
  535. return( .t. )
  536.  
  537. //*****************************************************************
  538.  
  539. function GINVNO( OKNEW ) // Amended by SUMMER93
  540. // Calls: SINVNO QBPROMPT QBREAD QBYESNO INVOWNGT 
  541. // Called By: INVFIND 
  542. local SEEKVAR, OKMATCH, IINDEX, GETLIST
  543. // These locals cover set/get variables where lvalues are needed
  544. local MOWNNAME, MINVNO
  545. GETLIST := {}
  546.  
  547.  
  548. SINVNO( )
  549.  
  550. select INVOICE 
  551. IINDEX := QBPROMPT( "Owner name|Invoice number|Quit|", ;
  552. "Select method of searching", 2 )
  553. if IINDEX  = 1  // Find by name
  554.     set index to INVNAME 
  555.     // GET command amended to ...
  556.     MOWNNAME := MOWNNAME()
  557.     @ 5, 15  get MOWNNAME  WHEN { || MOWNNAME := MOWNNAME(), .t. } ;
  558.      valid { ||  MOWNNAME( MOWNNAME ) != NIL }
  559.     do QBREAD with "Input Owner name (or part)", "" , @GETLIST
  560.     // Call amended
  561.     SEEKVAR := upper( trim(MOWNNAME() ))
  562. elseif IINDEX  = 2  // Find by number
  563.     set index to INVNUM 
  564.     // GET command amended to ...
  565.     MINVNO := MINVNO()
  566.     @ 02, 73  get MINVNO picture "99999"  WHEN { || MINVNO := MINVNO(), .t. } ;
  567.      valid { ||  MINVNO( MINVNO ) != NIL }
  568.     do QBREAD with "Input Invoice number", "" , @GETLIST
  569.     // Call amended
  570.     SEEKVAR := str( MINVNO() , 5 )
  571. else 
  572.     GETOUT( .t.  )
  573.     return( 0 )
  574. endif 
  575.  
  576. do case 
  577.     case GETOUT()  // Just hit escape
  578.         return( 0 )
  579.     case !empty( SEEKVAR )
  580.         set softseek off 
  581.         seek SEEKVAR 
  582.     case empty( SEEKVAR ) // Did we get it?
  583.         if QBYESNO( "Would you like to search for it?" ) = "Y" 
  584.             MINVNO( INVOWNGT( SEEKVAR ) )
  585.             SEEKVAR := iif( IINDEX  = 1, MOWNNAME() , MINVNO() )
  586.             return( MINVNO() )
  587.         else 
  588.             return( 0 )
  589.         endif 
  590. endcase 
  591.  
  592. do case  // Result of that
  593.     case GETOUT()  // Just hit escape in INVOWNGT()
  594.         return( 0 )
  595.     case eof( )
  596.         QBPROMPT( iif(OKNEW, "Create new|", "" ) + "Search|Quit|", ;
  597.         "Action for this non-existent Invoice", 2 )
  598.         do case 
  599.                 //   case QBRESP="C"
  600.                 //       Do nothing....
  601.             case QBRESP()  = "S" 
  602.                 MINVNO( INVOWNGT( SEEKVAR ) )
  603.             otherwise 
  604.                 return( 0 )
  605.         endcase 
  606.     otherwise 
  607.         OKMATCH := iif( IINDEX  = 2, MINVNO()  = INVOICE->INVNO, SEEKVAR == ;
  608.         upper(trim(INVOICE->OWNNAME )))
  609.         MINVNO( INVOICE->INVNO  )  // In case answer=1
  610.         if !OKMATCH 
  611.             if QBYESNO( ;
  612.                 "Not an exact match - Would you like to search for it?" ) = ;
  613.                 "Y" 
  614.                 MINVNO( INVOWNGT( SEEKVAR ) )
  615.             endif 
  616.         elseif IINDEX  = 1 
  617.             skip 
  618.             if upper( trim(SEEKVAR )) = upper( INVOICE->OWNNAME )
  619.                 if QBYESNO( "More matches - Would you like to search for it?" ;
  620.                     ) = "Y" 
  621.                     MINVNO( INVOWNGT( SEEKVAR ) )
  622.                 else 
  623.                     skip - 1 
  624.                 endif 
  625.             else 
  626.                 skip - 1 
  627.             endif 
  628.         endif 
  629. endcase 
  630.  
  631. return( MINVNO() )
  632.  
  633. //*****************************************************************
  634.  
  635. function COPYEST
  636. // Calls: 
  637. // Called By: INVINSLB 
  638. local RETVAL, MEM, VARNAME
  639.  
  640.  
  641. VARNAME := readvar()
  642. // SUMMER93 - Caution
  643. // A call to 'readvar' followed by a macro can 
  644. // be replaced by use of 'getactive' and 'varget'
  645. // VARNAME := GETACTIVE():VARGET()
  646. MEM := &VARNAME 
  647. if empty( MLABESTNO() )
  648.     MLABESTNO( MEM  )
  649. endif 
  650.  
  651. return .t. 
  652.  
  653. //*****************************************************************
  654. FUNCTION SUMPART( xNewVal )
  655. local xReturn := SUMPART
  656. if xNewVal <> NIL
  657.     SUMPART := xNewVal
  658. endif
  659. return xReturn
  660. // End of file
  661.